﻿namespace SmartFront.Toolkit.ActionFramework
{
    /// <summary>
    /// Interface defines the required signature for actions.
    /// </summary>
    /// <typeparam name="TResult">The type of the result for the action performed.  
    /// May be <see cref="Void"/> for actions which do not have a result.</typeparam>
    public interface IAction<TResult>
    {
        /// <summary>
        /// Executes the action.
        /// </summary>
        TResult Execute();
    }
}